<html>
<head><meta charset="utf-8"><title>ICE for recursive type w/ infinite size #61323 · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html">ICE for recursive type w/ infinite size #61323</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="167486078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167486078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167486078">(Jun 06 2019 at 14:25)</a>:</h4>
<p>Hey <span class="user-mention" data-user-id="116107">@davidtwco</span>, <span class="user-mention" data-user-id="116122">@simulacrum</span> -- to be honest I've not even looked at the bug yet :)</p>



<a name="167486211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167486211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167486211">(Jun 06 2019 at 14:26)</a>:</h4>
<p>If it helps I can try to dig in after compiler meeting and see if I can make any progress and report back</p>



<a name="167487476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167487476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167487476">(Jun 06 2019 at 14:39)</a>:</h4>
<p>OK I at least clicked on it now. I'm not an <em>expert</em> in this code but I am "familiar with the concepts" :)</p>



<a name="167501527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167501527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167501527">(Jun 06 2019 at 17:18)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> When do you think you'll have some time for me to run a few things past you?</p>



<a name="167501593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167501593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167501593">(Jun 06 2019 at 17:19)</a>:</h4>
<div class="codehilite"><pre><span></span>DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(TraitSelect(ad559170a0bb6af-f35452a8800813b7)) --- state of dependency adt_sized_constraint(issue_61323[317d]::C[0]) is unknown, trying to mark it green
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::C[0])) - BEGIN
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::C[0])) --- found dependency adt_def(issue_61323[317d]::C[0]) to be immediately green
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::C[0])) - END - dependency type_of(issue_61323[317d]::C[0]::a[0]) was immediately red
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(TraitSelect(ad559170a0bb6af-f35452a8800813b7)) --- trying to force dependency adt_sized_constraint(issue_61323[317d]::C[0])
DEBUG 2019-06-06T16:29:15Z: rustc::ty: evaluating adt_sized_constraint for DefId(0:16 ~ issue_61323[317d]::C[0])
DEBUG 2019-06-06T16:29:15Z: rustc::ty::query::plumbing: ty::query::get_query&lt;adt_def&gt;(key=DefId(0:16 ~ issue_61323[317d]::C[0]), span=./issue-61323.rs:1:1: 1:1)
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: try_print_visible_def_path: def_id=DefId(0:16 ~ issue_61323[317d]::C[0])
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print: default_print_def_path: def_id=DefId(0:16 ~ issue_61323[317d]::C[0]), substs=[]
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print: default_print_def_path: key=DefKey { parent: Some(DefIndex(0)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs(&quot;C&quot;), disambiguator: 0 } }
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: try_print_visible_def_path: def_id=DefId(0:0 ~ issue_61323[317d])
DEBUG 2019-06-06T16:29:15Z: rustc::ty: evaluating adt_sized_constraint for (2) C
DEBUG 2019-06-06T16:29:15Z: rustc::ty::query::plumbing: ty::query::get_query&lt;type_of&gt;(key=DefId(0:17 ~ issue_61323[317d]::C[0]::a[0]), span=./issue-61323.rs:1:1: 1:1)
DEBUG 2019-06-06T16:29:15Z: rustc::ty::query::plumbing: ty::query::get_query&lt;adt_sized_constraint&gt;(key=DefId(0:12 ~ issue_61323[317d]::A[0]), span=./issue-61323.rs:1:1: 1:1)
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::A[0])) - BEGIN
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::A[0])) --- found dependency adt_def(issue_61323[317d]::A[0]) to be immediately green
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::A[0])) --- found dependency type_of(issue_61323[317d]::A[0]::B[0]::0[0]) to be immediately green
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::A[0])) --- state of dependency adt_sized_constraint(issue_61323[317d]::C[0]) is unknown, trying to mark it green
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::C[0])) - BEGIN
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::C[0])) --- found dependency adt_def(issue_61323[317d]::C[0]) to be immediately green
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::C[0])) - END - dependency type_of(issue_61323[317d]::C[0]::a[0]) was immediately red
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::A[0])) --- trying to force dependency adt_sized_constraint(issue_61323[317d]::C[0])
DEBUG 2019-06-06T16:29:15Z: rustc::ty::query::plumbing: ty::query::get_query&lt;def_span&gt;(key=DefId(0:16 ~ issue_61323[317d]::C[0]), span=./issue-61323.rs:1:1: 1:1)
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: def_path_str: def_id=DefId(0:16 ~ issue_61323[317d]::C[0]), ns=TypeNS
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: try_print_visible_def_path: def_id=DefId(0:16 ~ issue_61323[317d]::C[0])
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print: default_print_def_path: def_id=DefId(0:16 ~ issue_61323[317d]::C[0]), substs=[]
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print: default_print_def_path: key=DefKey { parent: Some(DefIndex(0)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs(&quot;C&quot;), disambiguator: 0 } }
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: try_print_visible_def_path: def_id=DefId(0:0 ~ issue_61323[317d])
DEBUG 2019-06-06T16:29:15Z: rustc::ty::query::plumbing: ty::query::get_query&lt;def_span&gt;(key=DefId(0:12 ~ issue_61323[317d]::A[0]), span=./issue-61323.rs:1:1: 1:1)
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: def_path_str: def_id=DefId(0:12 ~ issue_61323[317d]::A[0]), ns=TypeNS
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: try_print_visible_def_path: def_id=DefId(0:12 ~ issue_61323[317d]::A[0])
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print: default_print_def_path: def_id=DefId(0:12 ~ issue_61323[317d]::A[0]), substs=[]
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print: default_print_def_path: key=DefKey { parent: Some(DefIndex(0)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs(&quot;A&quot;), disambiguator: 0 } }
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: try_print_visible_def_path: def_id=DefId(0:0 ~ issue_61323[317d])
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: def_path_str: def_id=DefId(0:16 ~ issue_61323[317d]::C[0]), ns=TypeNS
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: try_print_visible_def_path: def_id=DefId(0:16 ~ issue_61323[317d]::C[0])
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print: default_print_def_path: def_id=DefId(0:16 ~ issue_61323[317d]::C[0]), substs=[]
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print: default_print_def_path: key=DefKey { parent: Some(DefIndex(0)), disambiguated_data: DisambiguatedDefPathData { data: TypeNs(&quot;C&quot;), disambiguator: 0 } }
DEBUG 2019-06-06T16:29:15Z: rustc::ty::print::pretty: try_print_visible_def_path: def_id=DefId(0:0 ~ issue_61323[317d])
DEBUG 2019-06-06T16:29:15Z: rustc::ty::fold: HasTypeFlagsVisitor: t=[type error] t.flags=HAS_TY_ERR self.flags=KEEP_IN_LOCAL_TCX
DEBUG 2019-06-06T16:29:15Z: rustc::dep_graph::graph: try_mark_previous_green(adt_sized_constraint(issue_61323[317d]::A[0])) --- forced to None
error: internal compiler error: src/librustc/dep_graph/graph.rs:725: try_mark_previous_green() - Forcing the DepNode should have set its color
</pre></div>



<a name="167501869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167501869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167501869">(Jun 06 2019 at 17:22)</a>:</h4>
<p>basically I'm trying to understand what exactly happens when we force a dep node</p>



<a name="167501886"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167501886" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167501886">(Jun 06 2019 at 17:23)</a>:</h4>
<p>from what I can tell through all the macros for the adt_sized_constraint query we can in fact find it from the depnode (since it's sole key is a DefId)</p>



<a name="167502207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167502207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167502207">(Jun 06 2019 at 17:26)</a>:</h4>
<p>and that seems to lead to an execution of the query to check whether it's green or not</p>



<a name="167502249"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167502249" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167502249">(Jun 06 2019 at 17:27)</a>:</h4>
<p>in this case that execution appears to loop, which I guess makes sense -- but we don't detect that loop</p>



<a name="167502426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167502426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167502426">(Jun 06 2019 at 17:30)</a>:</h4>
<p>I'm not actually sure why this loop doesn't always happen though, i.e., how we ever make it past this point</p>



<a name="167502488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167502488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167502488">(Jun 06 2019 at 17:30)</a>:</h4>
<p>maybe adt_sized_constraint isn't called in the happy path?</p>



<a name="167519176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167519176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167519176">(Jun 06 2019 at 20:25)</a>:</h4>
<p>Hm, okay, so I'm getting the impression that the problem is that the dep graph code has the "has errors" check <a href="https://github.com/rust-lang/rust/blob/master/src/librustc/dep_graph/graph.rs#L721" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc/dep_graph/graph.rs#L721">here</a> but it doesn't account for the fact that some queries, like adt_sized_info, don't emit errors but rather just return Error(...) of some sort and expect someone later on to actually emit the error</p>



<a name="167519579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167519579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167519579">(Jun 06 2019 at 20:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I'm not sure what to do about that (or whether my conclusion is even correct) so I'll call this blocked here and wait for you to have some time to chat for now</p>



<a name="167791549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167791549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167791549">(Jun 10 2019 at 20:04)</a>:</h4>
<blockquote>
<p>Hm, okay, so I'm getting the impression that the problem is that the dep graph code has the "has errors" check <a href="https://github.com/rust-lang/rust/blob/master/src/librustc/dep_graph/graph.rs#L721" target="_blank" title="https://github.com/rust-lang/rust/blob/master/src/librustc/dep_graph/graph.rs#L721">here</a> but it doesn't account for the fact that some queries, like adt_sized_info, don't emit errors but rather just return Error(...) of some sort and expect someone later on to actually emit the error</p>
</blockquote>
<p>hmm, that sounds plausible</p>



<a name="167795030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167795030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167795030">(Jun 10 2019 at 20:47)</a>:</h4>
<p>I'm not sure what the best route to move forward would be -- it also feels loosely like maybe we can just remove the has_errors check and do a delay_bug! or something akin to that?</p>



<a name="167795057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167795057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167795057">(Jun 10 2019 at 20:48)</a>:</h4>
<p>IIRC there is a way to say "we maybe encountered a bug but if something later on emits an error it is not actually a bug"</p>



<a name="167795116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167795116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167795116">(Jun 10 2019 at 20:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> does that sound like a viable plan? I'm not sure why the differentiation between has_errors being fine vs. not otherwise</p>



<a name="167795150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167795150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167795150">(Jun 10 2019 at 20:48)</a>:</h4>
<p>It's also possible I've incorrectly arrived at a conclusion :)</p>



<a name="167795327"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167795327" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167795327">(Jun 10 2019 at 20:50)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span>: <code>delay_span_bug</code> only crashes if normal errors have not been emitted</p>



<a name="167795362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167795362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167795362">(Jun 10 2019 at 20:51)</a>:</h4>
<p>right, that's what we want I think vs. the bug! call <a href="https://github.com/rust-lang/rust/blob/a73ecb3d9c432f8f53117b1a6b6c209dc802dee7/src/librustc/dep_graph/graph.rs#L722" target="_blank" title="https://github.com/rust-lang/rust/blob/a73ecb3d9c432f8f53117b1a6b6c209dc802dee7/src/librustc/dep_graph/graph.rs#L722">on this line</a></p>



<a name="167797657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167797657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167797657">(Jun 10 2019 at 21:21)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> that may be a viable plan, or maybe we can improve this logic altogether</p>



<a name="167797661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167797661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167797661">(Jun 10 2019 at 21:21)</a>:</h4>
<p>I think I need to devote a bit of time to concentrate on it -- maybe tomorrow morning</p>



<a name="167797774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/ICE%20for%20recursive%20type%20w/%20infinite%20size%20%2361323/near/167797774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/ICE.20for.20recursive.20type.20w.2F.20infinite.20size.20.2361323.html#167797774">(Jun 10 2019 at 21:22)</a>:</h4>
<p>okay -- I should be around tomorrow morning, let me know if you want to talk/chat sync</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>